
const permissionService = require('../service/permission.service')
const { OPERATION_IS_NOT_ALLOWED } = require('../config/error')
// 验证某一个登陆用户
// const verifyMomentPermission = async (ctx, next) => {
//   // 1.拿到用户id 和contentid
//   const { momentId } = ctx.params
//   const { id } = ctx.user

//   // 2.查询用户user 的 id 是否有修改momentId的权限
//   const isPermission = await permissionService.checkMoment(id, momentId)
//   if(!isPermission) {
//     return ctx.app.emit('error',OPERATION_IS_NOT_ALLOWED,ctx)
//   }

//   await next()
// }

// const verifyPermission = function(resouce) {
//   return  async (ctx, next) => {
//     // 1.拿到用户id 和contentid
//     const { momentId } = ctx.params
//     const { id } = ctx.user
  
//     // 2.查询用户user 的 id 是否有修改momentId的权限
//     const isPermission = await permissionService.checkMoment(id, momentId)
//     if(!isPermission) {
//       return ctx.app.emit('error',OPERATION_IS_NOT_ALLOWED,ctx)
//     }
  
//     await next()
//   }
// }



const verifyPermission = async (ctx, next) => {
  // 1.拿到用户id 和contentid
  const { id } = ctx.user
  // 2.获取资源的名称 / id
  const keyName = Object.keys(ctx.params)[0]
  const resourceId = ctx.params[keyName]
  const resourceName = keyName.replace('Id', '')

  // 2.查询用户user 的 id 是否有修改momentId的权限
  const isPermission = await permissionService.checkResouce(resourceName, resourceId, id)
  if(!isPermission) {
    return ctx.app.emit('error',OPERATION_IS_NOT_ALLOWED,ctx)
  }

  await next()
}
module.exports = {
  //verifyMomentPermission,
  verifyPermission
}